// 引入用户操作模块"
var user = require("../../utils/user.js");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    listData : [], // 存储列表数据
    menuData: [],
    activeTab:[true,false,false],  //用户存储是否激活样式 
    show : true,  // 最下的没有数据切换
    page:0,  // 用于存储当前的页码数
    sort:"asc",   // 默认升序
    order:"id",   //  默认id排序
    classID:"",  // 默认一个classID
    state:false, // 是否可以开启滚动加载
    carNum:0  // 购物数量
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 请求购物数量
    this.getCarNum();

    //options 存储着前一个页面通过url的search传值数据【从而获取到分类ID】
    var classID = options.classID;
    // 判断一下options里面是否有排序依据和升序还是降序
    var order = options.order ? options.order : "id";
    var sort  = options.sort  ? options.sort  : "asc";
    // 修改变量
    this.setData({
      classID: classID,
      order:order,
      sort:sort
    })
    //请求页面数据
    this.getPageData();
  },
  // 上拉加载数据
  onReachBottom: function () {
    
    if(!this.data.state){  //如果state是false,则不可以滚动加载
        return
    }else{  // 如果state是true，则可以滚动加载，那先把这个值改为false,防止短期又滚动行为发生
      this.data.state = true;
    }

    this.data.page = this.data.page +1;
     // 显示等待框
     wx.showLoading({
       title: '加载中'
     })
     // 注意this指向
     var _this = this;
     // 请求列表商品数据
     wx.request({
       url: 'http://hewu1122.com/shop/mobile/list.php',
       data: {
         classID: _this.data.classID,
         order: _this.data.order,
         sort: _this.data.sort,
         page: _this.data.page
       },
       header: {
         'content-Type': 'application/json' // 默认值
       },
       success: function (res) {
         console.log(res.data) // 返回的是第二页的数据，需要和第一页的数据放到一个数组里面去
         // 修改data里的数据，将新的数据和原来的合并到一起去
         var oldData = _this.data.listData;
         var newData = res.data.data;
         for(var i=0; i<newData.length; i++ ){
            oldData.push(newData[i]);
         }
         // 修改数据
         _this.setData({
           listData: oldData,
           state:true  // 当数据请求完成则可以开始滚动加载
         })
         // 如果这次请求回来的数据都少于10条，那就没有必要进行滚动加载，因为这是最后一页了
         if (res.data.data.length < 10) {
           _this.setData({
             state: false,  // 不可以滚动加载
             show: false    // 不在显示可以加载拉，显示没有数据了
           })
         }
         // 关闭等待框
         wx.hideLoading()
       }
     })
  },
  // 自定义函数tab切换
  tabMenu:function(event){
    
    var index = event.target.id; //获取当前点击的下标
    var activeTab = this.data.activeTab;
    // 将所有的tab样式去掉激活
    for (var i = 0; i < activeTab.length; i++){
       activeTab[i] = false;
    }
    // 当前点击的那个变成激活
    activeTab[index] = true;
    // 修改样式
    this.setData({
      activeTab: activeTab
    })

    if(index==0){  // 点击第一个，排序依据为id，默认升序
      this.setData({
        order:"id",
        sort:"asc",
        page:0
      })
    }else if(index==1){  // 点击第二个 ，排序依据为price，升序
      this.setData({
        order: "price",
        sort: "asc",
        page: 0
      })
    }else if(index==2){  // 点击第三个，排序依据为price,降序
      this.setData({
        order: "price",
        sort: "desc",
        page: 0
      })
    }
    // 重新请求一次页面数据
    this.getPageData();
  },
  getPageData:function(){
    // 显示等待框
    wx.showLoading({
      title: '加载中'
    })

    // 注意this指向
    var _this = this;
    // 请求列表商品数据
    wx.request({
      url: 'http://hewu1122.com/shop/mobile/list.php',
      data: {
        classID: _this.data.classID,
        order: _this.data.order,
        sort: _this.data.sort,
        page: _this.data.page
      },
      header: {
        'content-Type': 'application/json' // 默认值
      },
      success: function (res) {
        // 修改data里的数据
        _this.setData({
          listData: res.data.data,
          state: true   // 可以滚动加载
        })
        // 关闭等待框
        wx.hideLoading()
        // 如果第一次请求回来的数据都少于10条，那就没有必要进行滚动加载，因为这是最后一页了
        if (res.data.data.length < 10) {
          _this.setData({
            state: false,  // 不可以滚动加载
            show: false    // 不在显示可以加载拉，显示没有数据了
          })
        }
      }
    })
  },
  // 加入购物车事件
  addCar:function(event){
    //获取点击的商品ID
    var goodID = event.currentTarget.dataset.goodid; 
    //由于进入页面后请求购物车数量，绝对会让用户登录。
    var _this = this;
    // 从本地存储判断有没有user字段内容
    var _this = this;
    var userInfo = null;
    wx.getStorage({
      key: "user",
      success: function (res) {   
        userInfo = JSON.parse(res.data);
        // 发送请求
        wx.request({
          url: "http://hewu1122.com/shop/mobile/shopCar.php",
          data: {
            act: "add",
            userID: userInfo.nickName,
            goodID: goodID
          },
          success: function (res) {
            if (res.data.code == 200) {
              wx.showToast({
                title: '加入成功',
                icon: 'success',
                duration: 1000
              })
              // 重新请求购物数量
              _this.getCarNum();
            }
          }
        })
      }
    }) 
  },
  //获取购物车数量
  getCarNum:function(){
   
    var _this = this;
      // 从本地存储判断有没有user字段内容，如果有说明已经登录了
      wx.getStorage({
        key:"user",
        success: function (res) {     // 判断用户已经登录
          _this.getCarAjax(res.data);
        },
        fail:function(err){   //用户没有登录过
          console.log(err);
          user.userAction(_this.getCarNum); // 执行用户模块中对用户没有注册的情况操作
        }
      })

     // 请求购物车的数量
  },
  // 请求购物车数量
  getCarAjax:function(user){
    var _this = this;
    var user = JSON.parse(user);  // 用户信息字符串转化为对象
    //请求数量
    wx.request({
      url:"http://hewu1122.com/shop/mobile/shopCar.php",
      data:{
        act:"select",
        userID: user.nickName
      },
      success:function(res){
        if(res.data.code==200){
            // 修改变量
            _this.setData({
              carNum:res.data.data.length
            })
        }
      }
    })
  }
})